import request from '@/api/config/request'
import { ApiResponse } from './type'

export interface PostData {
  id: number,
  title: string, // 标题
  content?: string, // 内容
  lookCount: number, // 查看数
  likeCount: number, // 喜欢数
  collectCount: number, // 收藏数
  categoryId:string, // 分类描述id
  tagIds:number[], // 标签描述id[]
  createdAt?: string
}
// 文章新增参数 todo缺少文章图片
export interface PostAddData {
  id: number,
  title: string, // 标题
  content: string, // 内容
  categoryId:string, // 分类描述id
  tagIds:number[], // 标签描述
}
// 返回参数
export interface PostList {
  posts: PostData[];
  total: number;
}
// 查询参数
export interface Params {
  title: string,
  categoryId: number | string,
  tagIds: number[],
  pageNum: number;
  pageSize: number;
}

// 获取全部文章分页
export const getPost = (data: Params): Promise<ApiResponse<PostList>> => {
  return request.post('/post/find', data)
}

// 添加新文章 Omit 排除id
export const addNewPost = (data: Omit<PostAddData, 'id'>): Promise<ApiResponse<null>> => {
  return request.post(
    '/post/add',
    data
  )
}

// 删除文章
export const removePostByID = (id: number): Promise<ApiResponse<null>> => {
  return request.delete(`/post/${id}`)
}

// 更新文章
export const updatePostByID = (id: number, data: PostAddData): Promise<ApiResponse<null>> => {
  return request.patch(`/post/${id}`, data)
}
